#include <iostream>
#include<vector>//使用vector时需要的头文件 

using namespace std;

// 快速排序函数
void quickSort(vector<int>& nums, int start, int end) {
    // 当起始索引大于等于结束索引时，表示排序完成
    if (start >= end) {
        return;
    }

    int i = start; // 左指针
    int j = end;   // 右指针
    int key = nums[start]; // 选择基准元素为起始元素

    // 开始排序过程
    while (i < j) {
        // 从右向左找到第一个小于基准元素的元素
        while (i < j && nums[j] > key) {
            j--;
        }
        // 从左向右找到第一个大于等于基准元素的元素
        while (i < j && nums[i] <= key) {
            i++;
        }
        // 交换找到的两个元素
        if (i < j) {
            swap(nums[i], nums[j]);
        }
    }

    // 将基准元素放到正确的位置（此时 i 和 j 相遇）
    swap(nums[start], nums[i]);

    // 递归排序基准元素左右两侧的子数组
    quickSort(nums, start, i - 1);
    quickSort(nums, i + 1, end);
}

// 公共接口函数，用于调用快速排序
void sort(vector<int>& nums) {
    // 如果数组长度小于2，直接返回，无需排序
    if (nums.size() < 2) {
        return;
    }
    // 调用快速排序函数对整个数组进行排序
    quickSort(nums, 0, nums.size() - 1);
}
void hello(void);

void hello(void){
    cout<<"Hi"<<endl;
}

// 主函数
